/******************************************************************************
** 公司名称：天津柯迪斯科技有限公司
** 版权信息：
** 文件名称： bsp_GPIO.c
** 模块名称： KD716-AT32F415CBT7-CAN仪表通用管脚初始化模块
** 版 本 号： V1.0
** 作    者： 蒲磊
** 备    注： 所有作为通用IO使用的管脚，在此进行初始化。其它作为外设使用的管脚，
**            在相应外设初始化函数里面
** 修改记录： 版本     修改人      时间         修改内容
**
******************************************************************************/

/******************************************************************************
* 头文件
******************************************************************************/
#include "bsp_GPIO.h"
#include "Config.h"
/******************************************************************************
* 本文件宏定义 ('#define')
******************************************************************************/

/******************************************************************************
* 本文件类型定义 ('typedef')
******************************************************************************/

/******************************************************************************
* 本文件静态函数声明 ('static')
******************************************************************************/

/******************************************************************************
* 全局变量定义
******************************************************************************/

/*****************************************************************************
* 函数实现 - global ('extern') and local ('static')
******************************************************************************/


/******************************************************************************
** 功  能：通用外部引脚初始化
** 参  数：无
** 返回值：无
** 备  注：作为外设使用的引脚，放在相应外设的初始化函数中
******************************************************************************/
void vBsp_GPIO_Init(void)
{
    gpio_init_type  GPIO_Initstructure;

    crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK,TRUE);					/*开启IOMUX时钟*/
    crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK,TRUE);					/*打开GPIOB端口的时钟*/
    crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK,TRUE);					/*打开GPIOA端口的时钟*/

    gpio_pin_remap_config(SWJTAG_GMUX_010,TRUE);							/*禁用JTAG调试接口，使用SWD调试接口，释放PB3和PB4作为通用IO*/

    GPIO_Initstructure.gpio_mode 			= GPIO_MODE_OUTPUT;
    GPIO_Initstructure.gpio_out_type 		= GPIO_OUTPUT_PUSH_PULL;
    GPIO_Initstructure.gpio_pull			= GPIO_PULL_NONE;
    GPIO_Initstructure.gpio_drive_strength	= GPIO_DRIVE_STRENGTH_MAXIMUM;
    GPIO_Initstructure.gpio_pins 			= GPIO_PINS_4;					/*KP信号线*/
    gpio_init(GPIOB,&GPIO_Initstructure);

    gpio_bits_reset(GPIOB,GPIO_PINS_4);										/*KP信号默认不使能，在需要时再使能*/

    /*以下初始化USB充电检测引脚，PA8*/
    GPIO_Initstructure.gpio_mode 			= GPIO_MODE_INPUT;
    GPIO_Initstructure.gpio_pull			= GPIO_PULL_NONE;               /*信号外部有上拉*/
    GPIO_Initstructure.gpio_pins 			= GPIO_PINS_8;					/*KP信号线*/
    gpio_init(GPIOA,&GPIO_Initstructure);


}



